﻿Imports GBDZafiro

Public Class FrmSubGrupo

    Private grupo As GBDZafiro.Grupo

    Public Sub New(ByRef grupo As GBDZafiro.Grupo)
        ' This call is required by the designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
        Me.grupo = grupo
    End Sub

    Public Sub New()
        ' This call is required by the designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.        
    End Sub

    Private Sub FrmSubGrupo_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        If grupo IsNot Nothing Then 'OrElse Not grupo.grupo.Length < 1
            tbGrupo.Text = grupo.grupo
        End If
        cargargvGrupo()
       
    End Sub

    Protected Overrides Sub bnNuevo_Click(sender As System.Object, e As System.EventArgs)
        MyBase.bnNuevo_Click(sender, e)
        tbSubGrupo.Focus()
    End Sub

    Protected Overrides Sub bnGuardar_Click(sender As System.Object, e As System.EventArgs)
        If tbSubGrupo.TextLength < 1 Or tbGrupo.TextLength < 1 Then
            msnBox.msnExclamacion("Digite un nuevo Grupo y/o Subgrupo")
            Exit Sub
        Else
            If addSubGrupo() Then
                MyBase.bnGuardar_Click(sender, e)
            End If
        End If
    End Sub

    Protected Overrides Sub bnEliminar_Click(sender As System.Object, e As System.EventArgs)
        If tbSubGrupo.Text = "POR DEFINIR" Then
            msnBox.msnInformacion("Elija un subgrupo para eliminar")
            Exit Sub
        End If
        deleteSubGrupo()
        MyBase.bnEliminar_Click(sender, e)
    End Sub

    Private Sub gvSubGrupo_RowHeaderMouseClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles gvSubGrupo.RowHeaderMouseClick
        Dim rowgvSubGrupo As New DataGridViewRow()
        rowgvSubGrupo = gvSubGrupo.CurrentRow
        tbSubGrupo.Text = rowgvSubGrupo.Cells.Item("DESCRIPCION").Value.ToString()
    End Sub

    Private Sub btBuscar_Click(sender As System.Object, e As System.EventArgs) Handles btBuscar.Click
        Dim frmBcarGrupo As New FrmBcarGrupo()
        If frmBcarGrupo.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            Me.grupo = frmBcarGrupo.grupo
            tbGrupo.Text = frmBcarGrupo.grupo.grupo
            cargargvGrupo()
        End If
    End Sub

    Private Sub deleteSubGrupo()
        Dim dtSubGrupo As DataTable
        Dim rowgvSubGrupo As New DataGridViewRow()
        rowgvSubGrupo = gvSubGrupo.CurrentRow
        dtSubGrupo = GBDZafiro.SubGrupo.ConsxDescrip(rowgvSubGrupo.Cells.Item("DESCRIPCION").Value.ToString())
        Dim subgrupo As New SubGrupo

        For Each rowSubGrupo As DataRow In dtSubGrupo.Rows
            If msnBox.msnQuestion("¿Desea borra el Subgrupo " + rowSubGrupo("DESCRIPCION").ToString + " ?") = _
                Windows.Forms.DialogResult.Yes Then
                subgrupo.idGrupo = rowSubGrupo("ID_SUBGRUPO").ToString
                GBDZafiro.SubGrupo.Eliminar(subgrupo)
                cargargvGrupo()
                msnBox.msnInformacion("SubGrupo Borrado")
            Else
                Exit Sub
            End If
        Next
    End Sub

    Private Function addSubGrupo() As Boolean
        If Not getIdGrupo(tbGrupo.Text) = "1" Then
            Dim subgrupo As SubGrupo = crearSubGrupo()
            GBDZafiro.SubGrupo.Nuevo(subgrupo)
            cargargvGrupo()
            'msnBox.msnInformacion("SubGrupo Guardado")
            Return True
        Else
            'msnBox.msnExclamacion("Elija un grupo")
            Return False
        End If
    End Function

    Private Function crearSubGrupo() As SubGrupo
        Dim subGrupo As New SubGrupo
        subGrupo.idGrupo = getIdGrupo(tbGrupo.Text).ToUpper()
        subGrupo.Descripcion = tbSubGrupo.Text.ToUpper()
        Return subGrupo
    End Function

    Private Sub cargargvGrupo()
        If tbGrupo.TextLength < 1 Then
            Exit Sub
        End If
        Dim subgrupo As New SubGrupo
        subgrupo.idGrupo = grupo.idGrupo
        Dim dtSubGrupo As DataTable = subgrupo.ConsxIdGrupo(subgrupo)

        gvSubGrupo.DataSource = Nothing
        gvSubGrupo.Rows.Clear()
        gvSubGrupo.DataSource = dtSubGrupo

        With gvSubGrupo
            .Columns.Remove("ID_GRUPO")
            .Columns.Remove("ID_SUBGRUPO")
            .Columns(0).HeaderText = "SUBGRUPO"
        End With
    End Sub

    Private Function getIdGrupo(ByRef descripcion As String) As String
        Dim dtGrupo As DataTable = grupo.ConsxDescripcion(descripcion)
        Dim idGrupo As String = ""
        For Each rGrupo As DataRow In dtGrupo.Rows
            idGrupo = rGrupo("ID_GRUPO")
            Exit For
        Next
        Return idGrupo
    End Function

    Private Sub cargarcbGrupo()
        'cbGrupo.DataSource = Nothing
        'cbGrupo.Items.Clear()
        'cbGrupo.DataSource = Grupo.getAllGrupos()
        'cbGrupo.ValueMember = "ID_GRUPO"
        'cbGrupo.DisplayMember = "DESCRIPCION"
    End Sub

End Class
